По
заданным целым значениям n ³ 1 и p ³ 1 вычислить значение , положительный n
- ый корень числа p. Известно, что всегда существует такое целое k,
что kn = p.
Вход. Состоит из двух чисел n и p
(1 £ n £ 300, 1 £ p < 10101).
Известно, что всегда существует такое целое k
(1 ≤ k ≤ 109),
что kn = p.
Выход. Вывести значение , то есть такое k,
что kn = p.
Пример входа |
Пример выхода |
7
4357186184021382204544 |
1234 |
математика
Известно, что = = = . В соответствии с ограничениями на числа n, p
и k достаточно использовать тип double для объявления этих переменных и
вычислить значение . Что в языке Си будет записано как exp(log(p)/n).
Пример
Для приведенного теста = 1234.
Читаем значения n и p,
вычисляем и выводим .
scanf("%lf %lf",&n,&p);
res = exp(log(p)/n);
printf("%.0lf\n",res);
Java реализация
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner
con = new Scanner(System.in);
double n = con.nextDouble();
double p = con.nextDouble();
double res = Math.pow(p,1/n);
System.out.println((int)(res+0.5));
}
}
Python реализация
Реализация
при помощи формулы = .
import
math
n, p =
map(int,input().split())
res = int(math.exp(math.log(p)/n) + 0.00001)
print(res)
Реализация
при помощи формулы = .
import
math
n, p =
map(int,input().split())
res = int(p ** (1.0/n) + 0.00001)
print(res)